#include <iostream>

using namespace std;

/*
 * 函数重载     函数名相同，提高复用性
 *  条件  1、同一个作用阈下
 *       2、函数明相同
 *       3、函数参数类型不同 或 个数不同 或 顺序不同
 *
 *  注   函数的返回值不可以作为函数重载的条件
 */

void func1(int &a) {   // int &a = 10  不合法代码
    cout << "func1(int& a)" << endl;
}

void func1(const int &a) {  // const int &a = 10  合法代码
    cout << "const func1(int& a)" << endl;
}

void func2(int a, int b=10){
    cout << "func2(int a, int b)" << endl;
}

void func2(int a){
    cout << "func2(int a)" << endl;
}


int main() {

    int a = 10;
    func1(a);
    func1(10);

//    func2(10);  // 重载遇到默认参数，有二义性

    return 0;
}
